perm filename LETTER.GH[P,JRA] blob sn#160139 filedate 1975-05-22 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\\M1BASL30\M2BASB30\M3NGR25\M4NGR20\F2\CSTANFORD UNIVERSITY
C00008 ENDMK
C⊗;
\\M1BASL30;\M2BASB30;\M3NGR25;\M4NGR20;\F2\CSTANFORD UNIVERSITY
\F3\CSTANFORD, CALIFORNIA 94305
\F4COMPUTER SCIENCE DEPARTMENT\←L\-R\/'7;\+R\→.\→S   Telephone:
\←S\→.415-497-4971
\F1\CMay 22,1975







Dr. Gerard Huet
IRIA-LABORIA
Domaine de Voluceau
78150 Rocqencourt
Le Chesnay, France



Dear Gerard:

\JI'm sorry I missed your talk when you were here. I was off teaching
that afternoon. As you probably know David Luckham and I have parted
company (on not the best of terms I'm sorry to say). 

I was quite interested in your paper on the structure oriented editor.
I have been trying to get David to investigate a truly useable programming
environment for a long time but he saw it as "systems programming". I have
submitted a proposal to education-branch of the NSF to in fact build
such a system to be used intially in conjunction with an approach to
programming (indeed abstract algorithms and data structures) which I
have been teaching off-and-on for several years.

My emphasis is on the construction of correct algorithms through 
a proper appreciation of abstraction. The study of abstract data structures
(nominally through LISP) has been  particularly successful. 
I've used the approach with graduate students and undergraduates
and come to the conclusion that the less they know about  programming
the better. Programmer's preconceptions about algorithms and data structures
really are appalling.  I've been writing a book which hopefully will
be finished soon; it tells the truth about abstract data structures
in the guise of language design and implementation. In particular
it's an  anatomy of LISP, exposing the pathologies and suggesting
a more modern treatment of languages.

The missing ingredient in this tour through  data structures
has been a realistic programming environment to reinforce
the teaching. That is, you teach them to think abstractly and in
representation-independent terms, then (sigh) have to rub their faces
in the terrible realities of card-oriented (simulated or otherwise) systems.

I guess the root of my problem is a deep seated dislike for the
current computer science setup in this country. We basically are training
a great batch of coders, perhaps sophisticated, but nevertheless coders.
The sooner we get over that ailment, the better.

My proposed system, I believe, will show that properly educated programmers
armed  with sufficiently sophisticated tools is the way to
attack the "software problem". Thus the  emphasis is on the stepwise
construction (indeed, discovery) of the correct algorithm using
abstraction to control the complexity, and a display to subdue the
volume of material and to maintain the programmer's context. Experiments
in parallel generation of algorithms and their correctness proofs have
been very promising. Clearly such a system must be display-based,
and clearly an editor like yours is one of the ingredients.

You ask, "Why doesn't this turkey send me a copy of his manuscript?"
Alas, the only copies  are quite old. But soon, within the summer,
a new version will exist; some time later McGraw-Hill will publish it.

If you would like, I can send you a copy of the revised manuscript, and
I in turn would be very interested in hearing how you are progressing
in your project.
\.
\←L\→S\←R\-L\/'2;\+L\→L

Yours sincerely,



John R. Allen
Research Associate
Computer Science Dept
Artificial Intelligence Lab

\←S\→L